package com.labManage.dao;

import com.labManage.entity.Kinds;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface KindsDao {
    /***************************************************************************************************************************
     *  @fn             selectKinds
     *  @brief          查询所有的分类信息
     *  @type           非静态方法
     *  @detail         抽象方法，具体sql在对应的GoodsDao.xml文件中编写，一一对应
     *  @param[in]      无
     *  @return         List<Kinds>             所有的分类信息
     *  @author         杜健华，杜志华
     *  @date           2021.06.21
     ****************************************************************************************************************************/
    public List<Kinds> selectKinds();

    /***************************************************************************************************************************
     *  @fn             insertKinds
     *  @brief          插入指定的分类信息
     *  @type           非静态方法
     *  @detail         抽象方法，具体sql在对应的GoodsDao.xml文件中编写，一一对应
     *  @param[in]      Kinds kinds             指定的分类信息
     *  @return         1  插入成功
     *                  0  插入失败
     *  @author         杜健华，杜志华
     *  @date           2021.06.21
     ****************************************************************************************************************************/
    public int insertKinds(Kinds kinds);

    /***************************************************************************************************************************
     *  @fn             selectKindsByKindsName
     *  @brief          通过指定的分类名称查询种类信息
     *  @type           非静态方法
     *  @detail         抽象方法，具体sql在对应的GoodsDao.xml文件中编写，一一对应
     *  @param[in]      String kindsName        指定的分类名称
     *  @return         Kinds                   返回指定名称的分类信息
     *  @author         杜健华，杜志华
     *  @date           2021.06.21
     ****************************************************************************************************************************/
    public Kinds selectKindsByKindsName(String kindsName);

    List<Kinds> selectKindsAllLimit(@Param("startIndex") Integer startIndex,@Param("limit")  Integer limit);

    String selectKindsNameByKindsId(Long kindsId);

    Boolean selectKindsNeedRebackByKindsId(Long kindsId);

    List<Kinds> selectAllKindsLimit(@Param("startIndex")Integer startIndex, @Param("limit")Integer limit,@Param("condition")Kinds condition);

    public int selectKindsNum(@Param("condition") Kinds condition);

    int updateKinds(Kinds kinds);

    int deleteKindsInfoById(Long id);
}
